#ifndef _QUERY_LOADER_H_
#define _QUERY_LOADER_H_

#include <string>

#include "json/json.h"
#include "Query.h"

class QueryLoader
{
private:
	void parseLogicalOps(Json::Value &root);
	void parsePhysicalOps(Json::Value &root);
	void parseSysConf(Json::Value &root);
	Query *parseQuery(Json::Value &root, Query *q);
	Array *parseArray(Json::Value &root);
	Cost *parseCost(Json::Value &root);
public:
	QueryLoader();

	Query *loadQueryFromFile(std::string filename);
};

#endif